#include "qdbus-common.h"
//#include <QMetaType>


#ifdef MANUAL_CONVETR_QSTRMAP
QDBusArgument& operator<< (QDBusArgument& argument, const QStringMap& ssmap)
{
    argument.beginMap(QMetaType::QString, QMetaType::QString);
    for(auto it=ssmap.begin(); it != ssmap.end(); it++)
    {
        argument.beginMapEntry();
        argument << it.key() << it.value();
        argument.endMapEntry();
    }

    argument.endMap();
    return argument;
}
const QDBusArgument& operator>> (const QDBusArgument& argument, QStringMap& ssmap)
{
    argument.beginMap();
    while ( !argument.atEnd() ) {
        QString key, value;
        argument.beginMapEntry();
        argument >> key >> value;
        argument.endMapEntry();
        ssmap.insert( key, value );
    }

    argument.endMap();
    return argument;
}
#endif //MANUAL_CONVERT_QSTRMAP

QDBusArgument& operator<< (QDBusArgument& argument, const Int2& i2)
{
     argument.beginStructure();
     argument << i2.i1 << i2.i2;
     argument.endStructure();
     return argument;
}
const QDBusArgument& operator>> (const QDBusArgument& argument, Int2& i2)
{
    argument.beginStructure();
    argument >> i2.i1 >> i2.i2;
    argument.endStructure();
    return argument;
}
